﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


class PackMessage
{


    // 消息类型
    private ushort m_uMessageType;
    // 消息大小
    private ushort m_MessageBodySize;
    // 打包数据
    private byte[] m_CurBufHead;
    // 当前最大
    private ushort m_uCurMaxSize;
    // 当前剩余
    private ushort m_uCurEmptySize;



    public PackMessage()
    {

        /*
		这里m_uCurMaxSize比m_pCurBufHead的实际大小少100用于预留一些其他的数据空间。
		断言m_uCurMaxSize的大小，是为了保证PackBytes函数的打包规则正确。
		*/
        m_CurBufHead = new byte[ushort.MaxValue];
        m_uCurMaxSize = ushort.MaxValue - 100;
    }

    // -----------------------------------------------------------------------
    // @brief 重置
    public void clean()
    {
        m_uMessageType = 0;
        m_MessageBodySize = 0;
        // FileInfo info;

        //BitConverter.ToUInt16()

        //byte array[];

        //m_bufHead.Read(array, 0, 2);

        //int b8 = m_bufHead.ReadByte();
        //int b16 = m_bufHead.ReadByte();

        //ushort uMessageType = BitConverter. b16 << 8 | b8;




    }
    // -----------------------------------------------------------------------
    // @brief 打包一个类型
    // @param[uType] 类型
    public void packType(ushort uType)
    {
        m_uMessageType = uType;
        m_MessageBodySize = 0;

    }
    // -----------------------------------------------------------------------
    // @brief 打包一个类型
    // @param[pMsg] 打包一个消息 
    public void packMsg(ushort uType, ushort bufsize, char[] buffer)
    {
        
        
        
        //Int16(pMsg[0]);
    }
    // -----------------------------------------------------------------------
    // @brief 打包一个二级制数据
    // @param[pHead] 数据头 
    // @param[uSize] 数据大小
    public void packBytes(char[] pHead, ushort uSize)
    {

    }
     

}
